Replace quic_aligned.h with Abseil and C++11 features.

Since alignas() is now officially supported in google3, use it instead of __attribute__((aligned)).

PiperOrigin-RevId: 339158191
Change-Id: Ie5ee589648ff2e3e86ff668e1ab82e887ae45fe1
diff --git a/quic/core/batch_writer/quic_batch_writer_buffer.h b/quic/core/batch_writer/quic_batch_writer_buffer.h
index b55e63c..88183f3 100644
--- a/quic/core/batch_writer/quic_batch_writer_buffer.h
+++ b/quic/core/batch_writer/quic_batch_writer_buffer.h
@@ -5,10 +5,10 @@
 #ifndef QUICHE_QUIC_PLATFORM_IMPL_BATCH_WRITER_QUIC_BATCH_WRITER_BUFFER_H_
 #define QUICHE_QUIC_PLATFORM_IMPL_BATCH_WRITER_QUIC_BATCH_WRITER_BUFFER_H_
 
+#include "absl/base/optimization.h"
 #include "net/third_party/quiche/src/quic/core/quic_circular_deque.h"
 #include "net/third_party/quiche/src/quic/core/quic_linux_socket_utils.h"
 #include "net/third_party/quiche/src/quic/core/quic_packet_writer.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_ip_address.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_socket_address.h"
 
@@ -86,7 +86,7 @@
   // Whether the invariants of the buffer are upheld. For debug & test only.
   bool Invariants() const;
   const char* buffer_end() const { return buffer_ + sizeof(buffer_); }
-  QUIC_CACHELINE_ALIGNED char buffer_[kBufferSize];
+  ABSL_CACHELINE_ALIGNED char buffer_[kBufferSize];
   QuicCircularDeque<BufferedWrite> buffered_writes_;
 };
 
diff --git a/quic/core/crypto/aead_base_encrypter.cc b/quic/core/crypto/aead_base_encrypter.cc
index 3b82755..b87ea50 100644
--- a/quic/core/crypto/aead_base_encrypter.cc
+++ b/quic/core/crypto/aead_base_encrypter.cc
@@ -10,7 +10,6 @@
 #include "third_party/boringssl/src/include/openssl/err.h"
 #include "third_party/boringssl/src/include/openssl/evp.h"
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
 
@@ -136,7 +135,7 @@
   }
   // TODO(ianswett): Introduce a check to ensure that we don't encrypt with the
   // same packet number twice.
-  QUIC_ALIGNED(4) char nonce_buffer[kMaxNonceSize];
+  alignas(4) char nonce_buffer[kMaxNonceSize];
   memcpy(nonce_buffer, iv_, nonce_size_);
   size_t prefix_len = nonce_size_ - sizeof(packet_number);
   if (use_ietf_nonce_construction_) {
diff --git a/quic/core/quic_arena_scoped_ptr.h b/quic/core/quic_arena_scoped_ptr.h
index 92da3db..fdd0c29 100644
--- a/quic/core/quic_arena_scoped_ptr.h
+++ b/quic/core/quic_arena_scoped_ptr.h
@@ -13,7 +13,6 @@
 
 #include <cstdint>  // for uintptr_t
 
-#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
 
@@ -21,7 +20,7 @@
 
 template <typename T>
 class QUIC_NO_EXPORT QuicArenaScopedPtr {
-  static_assert(QUIC_ALIGN_OF(T*) > 1,
+  static_assert(alignof(T*) > 1,
                 "QuicArenaScopedPtr can only store objects that are aligned to "
                 "greater than 1 byte.");
 
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 16145d1..155e76d 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -13,6 +13,7 @@
 
 #include "absl/base/attributes.h"
 #include "absl/base/macros.h"
+#include "absl/base/optimization.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_framer.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_handshake.h"
@@ -37,7 +38,6 @@
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
 #include "net/third_party/quiche/src/quic/core/quic_versions.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_client_stats.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
@@ -1499,7 +1499,7 @@
   } else if (packet.length() <= kMaxIncomingPacketSize) {
     // The optimized decryption algorithm implementations run faster when
     // operating on aligned memory.
-    QUIC_CACHELINE_ALIGNED char buffer[kMaxIncomingPacketSize];
+    ABSL_CACHELINE_ALIGNED char buffer[kMaxIncomingPacketSize];
     if (packet_has_ietf_packet_header) {
       rv = ProcessIetfDataPacket(&reader, &header, packet, buffer,
                                  ABSL_ARRAYSIZE(buffer));
diff --git a/quic/core/quic_one_block_arena.h b/quic/core/quic_one_block_arena.h
index 41842f3..d821803 100644
--- a/quic/core/quic_one_block_arena.h
+++ b/quic/core/quic_one_block_arena.h
@@ -44,7 +44,7 @@
   // Actual storage.
   // Subtle/annoying: the value '8' must be coded explicitly into the alignment
   // declaration for MSVC.
-  QUIC_ALIGNED(8) char storage_[ArenaSize];
+  alignas(8) char storage_[ArenaSize];
   // Current offset into the storage.
   uint32_t offset_;
 };
@@ -57,7 +57,7 @@
 QuicArenaScopedPtr<T> QuicOneBlockArena<ArenaSize>::New(Args&&... args) {
   DCHECK_LT(AlignedSize<T>(), ArenaSize)
       << "Object is too large for the arena.";
-  static_assert(QUIC_ALIGN_OF(T) > 1,
+  static_assert(alignof(T) > 1,
                 "Objects added to the arena must be at least 2B aligned.");
   if (QUIC_PREDICT_FALSE(offset_ > ArenaSize - AlignedSize<T>())) {
     QUIC_BUG << "Ran out of space in QuicOneBlockArena at " << this
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index 3b367d3..12b7e2d 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -12,6 +12,7 @@
 #include <utility>
 
 #include "absl/base/macros.h"
+#include "absl/base/optimization.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_protocol.h"
 #include "net/third_party/quiche/src/quic/core/frames/quic_frame.h"
@@ -24,7 +25,6 @@
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
 #include "net/third_party/quiche/src/quic/core/quic_versions.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_exported_stats.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
@@ -469,7 +469,7 @@
     return;
   }
 
-  QUIC_CACHELINE_ALIGNED char stack_buffer[kMaxOutgoingPacketSize];
+  ABSL_CACHELINE_ALIGNED char stack_buffer[kMaxOutgoingPacketSize];
   QuicOwnedPacketBuffer external_buffer(delegate_->GetPacketBuffer());
 
   if (external_buffer.buffer == nullptr) {
@@ -593,7 +593,7 @@
                 << ": " << SerializedPacketFateToString(packet_.fate) << " of "
                 << EncryptionLevelToString(packet_.encryption_level);
 
-  QUIC_CACHELINE_ALIGNED char stack_buffer[kMaxOutgoingPacketSize];
+  ABSL_CACHELINE_ALIGNED char stack_buffer[kMaxOutgoingPacketSize];
   QuicOwnedPacketBuffer packet_buffer(delegate_->GetPacketBuffer());
 
   if (packet_buffer.buffer == nullptr) {
diff --git a/quic/core/quic_packet_reader.h b/quic/core/quic_packet_reader.h
index 86eaa0e..6edf1f1 100644
--- a/quic/core/quic_packet_reader.h
+++ b/quic/core/quic_packet_reader.h
@@ -7,11 +7,11 @@
 #ifndef QUICHE_QUIC_CORE_QUIC_PACKET_READER_H_
 #define QUICHE_QUIC_CORE_QUIC_PACKET_READER_H_
 
+#include "absl/base/optimization.h"
 #include "net/third_party/quiche/src/quic/core/quic_clock.h"
 #include "net/third_party/quiche/src/quic/core/quic_packets.h"
 #include "net/third_party/quiche/src/quic/core/quic_process_packet_interface.h"
 #include "net/third_party/quiche/src/quic/core/quic_udp_socket.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_socket_address.h"
 
@@ -51,10 +51,10 @@
       bool prefer_v6_ip);
 
   struct QUIC_EXPORT_PRIVATE ReadBuffer {
-    QUIC_CACHELINE_ALIGNED char
+    ABSL_CACHELINE_ALIGNED char
         control_buffer[kDefaultUdpPacketControlBufferSize];  // For ancillary
                                                              // data.
-    QUIC_CACHELINE_ALIGNED char packet_buffer[kMaxIncomingPacketSize];
+    ABSL_CACHELINE_ALIGNED char packet_buffer[kMaxIncomingPacketSize];
   };
 
   QuicUdpSocketApi socket_api_;
diff --git a/quic/core/quic_utils.cc b/quic/core/quic_utils.cc
index b411e11..9def438 100644
--- a/quic/core/quic_utils.cc
+++ b/quic/core/quic_utils.cc
@@ -10,12 +10,12 @@
 #include <string>
 
 #include "absl/base/macros.h"
+#include "absl/base/optimization.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_connection_id.h"
 #include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/core/quic_versions.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
@@ -265,7 +265,7 @@
     // it to the hardware prefetcher after that.
     QuicPrefetchT0(next_base);
     if (iov[iovnum + 1].iov_len >= 64) {
-      QuicPrefetchT0(next_base + QUIC_CACHELINE_SIZE);
+      QuicPrefetchT0(next_base + ABSL_CACHELINE_SIZE);
     }
   }
 
diff --git a/quic/platform/api/quic_aligned.h b/quic/platform/api/quic_aligned.h
deleted file mode 100644
index ecfa649..0000000
--- a/quic/platform/api/quic_aligned.h
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_ALIGNED_H_
-#define QUICHE_QUIC_PLATFORM_API_QUIC_ALIGNED_H_
-
-#include "net/quic/platform/impl/quic_aligned_impl.h"
-
-#define QUIC_ALIGN_OF QUIC_ALIGN_OF_IMPL
-#define QUIC_ALIGNED(X) QUIC_ALIGNED_IMPL(X)
-#define QUIC_CACHELINE_ALIGNED QUIC_CACHELINE_ALIGNED_IMPL
-#define QUIC_CACHELINE_SIZE QUIC_CACHELINE_SIZE_IMPL
-
-#endif  // QUICHE_QUIC_PLATFORM_API_QUIC_ALIGNED_H_
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h
index 8b53f8f..0224235 100644
--- a/quic/test_tools/quic_test_utils.h
+++ b/quic/test_tools/quic_test_utils.h
@@ -1991,7 +1991,7 @@
 
 class TestPacketWriter : public QuicPacketWriter {
   struct PacketBuffer {
-    QUIC_CACHELINE_ALIGNED char buffer[1500];
+    ABSL_CACHELINE_ALIGNED char buffer[1500];
     bool in_use = false;
   };