pytorch/torch/csrc/jit
Su, Tong 60523540f1 Force build to conform C++ standard on windows by adding /permissive- flag (#149035)
Fixes #147366

1. Add `/permissive-` to the `torch_compile_options` for the build to conform to the C++ standard.
2. Fix the error when trying to assign a string literal to a non-const ptr.

The `/permissive-` flag can be found at https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170

From the above [doc](https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170#remarks),
>  By default, the /permissive- option is set in new projects created by Visual Studio 2017 version 15.5 and later versions.
> The /permissive- option is implicitly set by the /std:c++latest option starting in Visual Studio 2019 version 16.8, and in version 16.11 by the /std:c++20 option.

Thus, it is reasonable to add this flag to the existing project.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/149035
Approved by: https://github.com/guangyey, https://github.com/malfet
2025-03-18 01:51:46 +00:00
..
api Use Wextra-semi (#140236) 2024-11-13 02:15:16 +00:00
backends Fix crash in -[PTMCoreMLCompiler _compileModel:atPath:] (#147809) 2025-02-25 20:56:16 +00:00
codegen Force build to conform C++ standard on windows by adding /permissive- flag (#149035) 2025-03-18 01:51:46 +00:00
cuda [4/N] Avoid copy in std::get (#142285) 2024-12-09 07:59:35 +00:00
docs
frontend c10::string_view -> std::string_view in caffe2/jit (#142383) 2024-12-10 15:42:28 +00:00
ir Fix compile errors (#148758) 2025-03-08 04:56:42 +00:00
mobile Fix clang-tidy warnings in torch/jit (#146963) 2025-02-15 03:36:59 +00:00
operator_upgraders
passes Fix clang-tidy warnings in torch/jit (#146963) 2025-02-15 03:36:59 +00:00
python Make record/storage alignment in torch.save configurable (#147788) 2025-03-06 12:04:46 +00:00
runtime Fix torch.nn.functional.hardswish gradients corner case (#148049) 2025-03-14 18:53:10 +00:00
serialization Turn onnx functions into static (#147598) 2025-02-21 07:40:28 +00:00
tensorexpr [pytorch] Fix duplicated Malloc/Free insertation when using IRBuilderBase::CreateMalloc/CreateFree in LLVM 18+ (#149058) 2025-03-13 20:37:47 +00:00
testing Fix clang-tidy warnings in torch/jit (#146963) 2025-02-15 03:36:59 +00:00
jit_log.cpp Revert "[Environment Variable][6/N] Use thread-safe getenv functions (#140200)" 2024-11-13 15:33:23 +00:00
jit_log.h
jit_opt_limit.cpp Revert "[Environment Variable][6/N] Use thread-safe getenv functions (#140200)" 2024-11-13 15:33:23 +00:00
jit_opt_limit.h
JIT-AUTOCAST.md
OVERVIEW.md c10::optional -> std::optional in PyTorch (#137333) 2024-10-11 00:16:10 +00:00
README.md
resource_guard.h

PyTorch JIT

This folder contains (most of) the C++ code for the PyTorch JIT, a language and compiler stack for executing PyTorch models portably and efficiently. To learn more about the JIT from a user perspective, please consult our reference documentation and tutorials.

A brief summary of the source tree:

  • OVERVIEW.md: High-level technical overview of the JIT.
  • frontend/: Taking PyTorch modules in Python and translating them into the JIT IR.
  • ir/: Core IR abstractions.
  • runtime/: Interpreter, graph execution, and JIT operators.
  • codegen/: Generating efficient, hardware-specific code for JIT subgraphs.
  • serialization/: Saving and loading modules.
  • api/: Any user-facing C++ or Python interfaces.
  • python/: Binding stuff into Python or accessing information from the Python environment.
  • testing/: Utilities and helpers for testing.
  • mobile/: Mobile-specific implementations of runtime components.
  • passes/: IR-to-IR passes, generally for optimization and lowering.
  • generated/: This folder is generated by the PyTorch build, and contains bindings for native PyTorch operators into the JIT.

Refer to each folder for more in-depth documentation.

Other relevant parts of the codebase not contained here:

  • aten/src/ATen/core: contains JIT code re-used by other elements of the runtime system (eager, mobile, etc.)